package juego.motor;

import juego.tipos.*;

public abstract class Motor{
	protected Velocidad velocidadDeMovimiento;
	
	//Aplica la velocidad actual a la posicion, como si fuera un movimiento recto.
	protected Posicion aplicarVelocidad(Posicion aPosicion){
		Posicion nuevaPosicion = new Posicion(aPosicion);
		nuevaPosicion.transladar(this.velocidadDeMovimiento);
		return nuevaPosicion;
	}

	public void setVelocidad(Velocidad nuevaVelocidad){
		velocidadDeMovimiento = nuevaVelocidad.copiar();
	}
	
	public Velocidad getVelocidad(){
		return velocidadDeMovimiento.copiar();
	}
	//Devuelve la posicion nueva en base al funcionamiento 
	//del motor y partiendo de la posicionActual.	
	public abstract Posicion mover(Posicion posicionActual);
	
	
}
